package start.invoice;

import java.math.BigDecimal;
import java.util.List;

/**
 * 数电票数据模型
 * 包含发票的所有字段信息
 */
public class ElectronicInvoice {
    // 发票基本信息
    private String invoiceType;        // 发票类型
    private String invoiceCode;        // 发票代码
    private String invoiceNumber;      // 发票号码
    private String issueDate;          // 开票日期
    private String checkCode;          // 校验码

    // 买卖方信息
    private PartyInfo seller;          // 销售方
    private PartyInfo buyer;           // 购买方

    // 商品明细
    private List<InvoiceItem> items;   // 商品/服务项目

    // 汇总信息
    private String subtotalAmount;     // 合计金额
    private String totalTaxAmount;     // 合计税额
    private String totalAmount;        // 价税合计(小写)
    private String totalAmountInWords; // 价税合计(大写)

    // 附加信息
    private String remarks;            // 备注
    private String issuer;             // 开票人
    private String reviewer;           // 复核人
    private String receiver;           // 收款人

    // Getters and Setters
    public String getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(String invoiceType) {
        this.invoiceType = invoiceType;
    }

    public String getInvoiceCode() {
        return invoiceCode;
    }

    public void setInvoiceCode(String invoiceCode) {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceNumber() {
        return invoiceNumber;
    }

    public void setInvoiceNumber(String invoiceNumber) {
        this.invoiceNumber = invoiceNumber;
    }

    public String getIssueDate() {
        return issueDate;
    }

    public void setIssueDate(String issueDate) {
        this.issueDate = issueDate;
    }

    public String getCheckCode() {
        return checkCode;
    }

    public void setCheckCode(String checkCode) {
        this.checkCode = checkCode;
    }

    public PartyInfo getSeller() {
        return seller;
    }

    public void setSeller(PartyInfo seller) {
        this.seller = seller;
    }

    public PartyInfo getBuyer() {
        return buyer;
    }

    public void setBuyer(PartyInfo buyer) {
        this.buyer = buyer;
    }

    public List<InvoiceItem> getItems() {
        return items;
    }

    public void setItems(List<InvoiceItem> items) {
        this.items = items;
    }

    public String getSubtotalAmount() {
        return subtotalAmount;
    }

    public void setSubtotalAmount(String subtotalAmount) {
        this.subtotalAmount = subtotalAmount;
    }

    public String getTotalTaxAmount() {
        return totalTaxAmount;
    }

    public void setTotalTaxAmount(String totalTaxAmount) {
        this.totalTaxAmount = totalTaxAmount;
    }

    public String getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(String totalAmount) {
        this.totalAmount = totalAmount;
    }

    public String getTotalAmountInWords() {
        return totalAmountInWords;
    }

    public void setTotalAmountInWords(String totalAmountInWords) {
        this.totalAmountInWords = totalAmountInWords;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getIssuer() {
        return issuer;
    }

    public void setIssuer(String issuer) {
        this.issuer = issuer;
    }

    public String getReviewer() {
        return reviewer;
    }

    public void setReviewer(String reviewer) {
        this.reviewer = reviewer;
    }

    public String getReceiver() {
        return receiver;
    }

    public void setReceiver(String receiver) {
        this.receiver = receiver;
    }
}
